package com.service;


import com.domain.entity.Accessory;
import com.domain.req.AddAccessoryReq;
import com.domain.req.PageReq;
import com.domain.req.UpdateAccessoryReq;
import com.domain.vo.AccessoryPageListVO;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
* @author caishenao
* @description 针对表【accessory】的数据库操作Service
* @createDate 2023-10-12 20:05:26
*/
public interface AccessoryService{

    /**
     * 新增配件
     *
     * @param addAccessoryReq 新增配件请求
     */
    void addAccessory(AddAccessoryReq addAccessoryReq);

    /**
     * 根据配件id删除配件信息
     *
     * @param id 配件id
     */
    void deleteById(Integer id);

    /**
     * 根据配件id修改配件信息
     *
     * @param updateAccessoryReq 配件的修改请求
     */
    void updateById(UpdateAccessoryReq updateAccessoryReq);

    /**
     * 根据商品id查询配件数据
     *
     * @param goodsId 商品id
     * @return 数据
     */
    List<AccessoryPageListVO> listByGoodsId(Integer goodsId);

    /**
     * 分页查询配件信息
     * @param pageReq 分页请求
     * @param accessory 要查询的配件信息
     * @return 带有非也信息的配件信息激活
     */
    PageInfo<AccessoryPageListVO> pageList(PageReq pageReq, Accessory accessory);


    /**
     * 根据配件id查询配件信息
     *
     * @param id 配件id
     * @return 配件信息
     */
    Accessory getById(Integer id);

    /**
     * 根据配件名称查询
     * @param name 配件名称
     * @return 模糊查询的结果
     */
    List<Accessory> searchByName(String name);
}
